home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Floppyshop 2
/
Floppyshop - 2.zip
/
Floppyshop - 2.iso
/
diskmags
/
0022-3.564
/
dmg-0110
/
news.txt
/
1_4fix_2.asc
< prev
next >
Wrap
Text File
|
1997-04-16
|
15KB
|
267 lines
Copies of the programs that accompany these documents can be found in the
SIDE_TWO\TOS_1_4 folder.
---~~~~OOO~~~~---
POOLFIX4 (Got to patch and get again and again... c'mon, Leila, gimme
======== a break - or: Reasons To Be Cheerful, Part 4)
Yep, it's true, TOS 1.4 is buggy. Well, ATARI has done something about
it and released several fix programs to blow up your AUTO folder. A
very... ahem... remarkable representative of this kind of programs is
POOLFIX written by Allan Pratt which tries to fix a new bug in the pool
manager. Allan released three versions of this program, and then he
settled down with a long sigh of relieve thinking he did it right at
last.
Well, he wasn't quite right. Allan's POOLFIX versions needed to be
placed first in the AUTO folder because POOLFIX tries to locate
some illegal system variables by following the TRAP #1 vector into
ROM code. If any program occupies the TRAP #1 vector before POOLFIX
shows up, things are messed up: POOLFIX refuses to install itself.
This isn't a big problem for most of you out there, but it is a
problem for people using hard disk drivers and other programs that
start up before AUTO folder programs and use the TRAP #1 vector
for their own purposes. It is also a pain in the neck for everyone
to be forced to re-order their AUTO folder once again, and as time
passes by, you tend to forget which programs in the AUTO folder
need to be started in which order, and soon chaos spreads.
I was faced with the problem when I realized that POOLFIX3 didn't
want to install itself when my own hard disk driver (included in
the book SCHEIBENKLEISTER), version 3.5, was running. This is due
to the fact that I use the TRAP #1 vector in CBHD 3.5 (my HD driver)
to do some DESKTOP.INF patching that my readers urged me to implement.
The problem, however, could have been solved easily if POOLFIX would
follow the official ATARI guidelines for XBRA completely. CBHD 3.5
uses XBRA to notify other programs that it linked into the TRAP #1
vector, and so it would be no problem for POOLFIX to follow the
TRAP #1 XBRA chain into ROM. Allan, however, didn't think of this
neat possibility - being able to follow the chain was, as far as
I know, one of the main reasons for adopting the XBRA standard.
(The same problem occurs with FATSPEED, a freeware (?) GEMDOS
speed-up for TOS 1.2; if the programmer of FATSPEED should read
this some day, he or she should think of implementing this follow-
the-chain-into-ROM-technique into FATSPEED, too. Tnx so much.)
As always, users are forced to do the patching themselves. In this
case, I reassembled POOLFIX and inserted a full-blown XBRA algorithm.
Apart from that, I optimized the program a bit so that it occupies
lesser space in RAM than the previous version. It's also a bit
shorter on disk, but since it uses 2 clusters as before, there's
no speedup when booting. BTW: I used TURBO ASS for this job, a
remarkably fast shareware assembler written by Markus Fritze and
Sören Hellwig, Birkhahnkamp 38, 2000 Norderstedt 1, West Germany.
POOLFIX4, as I called it, has been tested successfully on my MegaST
with TOS 1.4 in ROM, on my STE with TOS 1.6 in ROM, and with a 1040
with TOS 1.2 (where it doesn't install itself since TOS 1.2 doesn't
need the patch). If there are any incompatibilities with any programs,
please tell me:
Claus Brod
Am Felsenkeller 2
8772 Marktheidenfeld
West Germany
(049-)(0)9391-3206
(e-mail: C.BROD@LINK-N (Zerberus net), soon also on FIDO and
Usenet)
This program should always be posted or copied with this documentation.
I claim no rights on this program (how should I, most of the code
is from Allan, who hopefully doesn't mind if I correct him this way),
so it's freeware. Spread it. I said: Spread it! Did I say "spread it"?
No? So I'll say it again: Spread it!
Sorry, Allan, but I HAD to do this for my readers. I will send ATARI
a copy of this program, so that they may be able to use it as an
official version (it's clearly better than the original). Let's
wait and see if they want it.
---~~O~~---
CTSPATCH.PRG
Copyright (C) 1989
by Bill Penner
26 August 1989
CTSPATCH.PRG is a program to fix the TOS 1.4 RS-232 RTS/CTS
handshaking problem. The program can be run as an autorun program
(placed in an AUTO folder and booted) or run when beginning to use
RTS/CTS handshaking.
Outside of the Rsconf() command not allowing the RTS/CTS mode to
be enabled, the RS-232 routines in the TOS 1.4 (April 1989) ROMs appear
to be bug free. The problem with the RTS/CTS routines is due to the
internal variable indicating the past state of the CTS line and the
active edge interupt register for the CTS line improperly set up when
the system initializes at powerup. CTSPATCH.PRG simply does the
initialization and exits.
Even with this program, many programs may not work with RTS/CTS.
This is primarily due to the various programs being written on a system
in which the RTS/CTS routines were not working (and causing system
crashes when enabled with older ROM's) and so many programs will
automatically turn off RTS/CTS handshaking.
---~~O~~---
TURBO CTS
Version 1.32
Copyright (C) 1989 by Bill Penner
First a statement: USE THIS SOFTWARE AT YOUR OWN RISK! THIS
PROGRAM MAY BE FREELY DISTRIBUTED AS LONG AS THE PROGRAM REMAINS
UNMODIFIED AND THIS DOC FILE REMAINS WITH THE PROGRAM. THIS PROGRAM
MAY !!NOT!! BE SOLD, HOWEVER, MAY BE INCLUDED ON CLUB DISKS WHICH ARE
SOLD FOR A SMALL FEE. YOU USE THIS SOFTWARE AT YOUR OWN RISK. I
ASSUME NO RESPONSIBILITY FOR ANY LOSS, DIRECTLY OR INDIRECTLY FROM USE
OR POSSESION OF THIS PROGRAM.
Since the ATARI ST was released in 1985 the computer has been
advertised as supporting RS-232 Clear to Send and Request to Send
(CTS/RTS) protocol. The truth is that the computer never has
sucessfully supported this. Even with the changes taking place in TOS
1.4, the April version of the ROM's still contain several bugs in the
RS232 routines which have made RTS/CTS flow control inoperative.
Currently most RS-232 interfaces only require three wires to be
connected between the computer and a peripheral (such as a modem or
serial printer). These lines would be the transmit data, receive data,
and ground. The transmit data line would carry the information from
the computer to the peripheral device and receive data would bring data
into the computer from the peripheral. Some devices operate slowly,
such as printers, and the computer can send out data faster than the
device can use it. To be able to work best with a computer, the
external device normally uses some form of buffering to store several
bytes (characters) of data (sometimes up to 256K bytes or more). If
the buffer was always larger than the amount of information no problem
would occur, but most devices will allow you to send more data out than
the buffer would be able to hold. To handle this, a form of
"handshaking" is required. For the RS-232 interface one of two
protocols of handshaking are normally used. Currently, the more
popular one is the XON/XOFF protocol. In this protocol, when a buffer
is nearly full, the device will send out a character as would be sent
out by pressing Control and S (Ctrl-S). When the buffer has emptied to
some point, the device will send out a Ctrl-Q to tell the other device
to start sending again. Communication with most BBS's will also allow
the user to stop the sending of text from the BBS by pressing Ctrl-S
from the terminal and then Ctrl-Q to continue the text again. The
other protocol is an older one in which two more wires are added to the
RS-232 interface for RTS and CTS signals. These operate similar to the
XON/XOFF protocol except that instead of sending some data back down
the line to tell the other device to stop sending data, a line is
changed from low to high. The line being sent from the computer to
tell an external device to stop sending is called Request to Send
(RTS). The line coming from an external device to the computer to tell
the computer to start or stop sending is called Clear to Send (CTS).
With most peripheral devices being smart (based on a
microprocessor or microcontroller), and the serial speeds being fairly
slow (110 to 9600 baud), XON/XOFF was easier to implement and required
less hardware. But, now with modem speeds increasing, several
companies are implementing RTS/CTS flow control. The US Robotics 9600
and 14400 baud modems have MNP data compression available when the
modem to computer RS-232 speed is set at 19200 baud, but to handle the
19.2K baud speed, the modem uses RTS/CTS flow control. The ATARI ST
ROM's have pretended to support this mode, but bugs in all versions of
TOS have prevented RTS/CTS from working, including the April version of
TOS 1.4 ROM's.
Upon the request of Don P. (STARBASE), I began to work on a fix
for the problem. At first glance the problem was a simple one, only to
trap the characters being sent to the modem and check for CTS being
low. I wrote a couple of accessories and programs which did this.
They were called CTSFX100, CTSFX101, CTSFX102, and CTSFX103. The
result is that they worked for some pieces of software like Flash and a
couple of other problems. While working on the program, I was
optimising routines and making the program faster. This only resulted
in showing that my method of fixing the problem was greatly in error.
I was simply grabbing the characters as they were being sent to the
output buffer and between the operating system, my software, and the
terminal or BBS program, the transfer speed was less then 19200 baud so
the buffer would never get filled up and my filter was working. But
after optimising several portions, the speed increased to the point of
making my program useless since the buffer would fill up the output
buffer and when CTS changed, my program would stop placing data in the
buffer, but then the computer would continue to send out the rest of
the buffer. In the documentation I wrote with the program, I included
my phone number. The program was distributed on F-Net and within a
couple of days, I had received many phone calls about fixing the
problem.
I have been working on the problem for a couple of weeks now and
have come to understand that the problem has been around for a long
time, and little has been done to resolve the problem. The data
compression mode of the US robotics was not able to be used and people
were relying on ATARI to eventully fix the ROMs. After generating the
CTS Fix programs, alot of interest was stirred up to fix the problem
and it appeared to be time to fix the problem, once and for all.
The approach was to take a close look at TOS 1.4 and to determine
why it didn't work. I found only three minor problems with the
software. Two problems had to do with the software not being properly
initialized and a bug in the Rsconf() routine which would not let you
set CTS/RTS mode. I was able to get the RTS/CTS to work PERFECTLY
simply by properly initializing the MFP CTS active edge register based
on current CTS level, initializing a system variable which is used to
tell the software if the transmit port was enabled or disabled (also
based on current CTS level), and then setting the system variable to
enable CTS/RTS. Programs would work just fine until they tried to set
the flow control, which would disable CTS/RTS and cause XON/XOFF to be
enabled or disabled.
A final program was written to replace the RS-232 routines used by
the system. This was the only way to create some software which would
work with any version of ROMs. Since the other modes of handshaking
worked just fine, I decided to write some RS-232 routines which were
optimized for CTS/RTS flow control in hopes of also speeding up the
RS-232 routines. The resultant program is called TURBOCTS.PRG.
TURBOCTS is a program which can be either autobooted or run when
the RTS/CTS flow control is needed. Once the program has been loaded,
the RTS/CTS mode is enabled and can not be disabled without rebooting
the system. The Rsconf() command can be used to set the RS-232 speed
and play with the UART registers, but flow control settings will have
no effect. The program will also properly trap the printer operations
when the printer output is sent to the RS-232 port as set in the
control panel or the Setprt() command. In beta testing, the program
has resulted in increasing the average Zmodem transfer speed on a US
Robotics 9600 baud modem communicating with the ST at 19.2 Kbaud from
approximately 850 characters per second (CPS) to 1100 CPS for nearly
30% improvement.
Note for PC Pursuit Users: You can continue to use the software
when calling through telenet. At the @ prompt, type:
@set ? 1:0,4:10,5:1,7:8,12:1 <ret>
During beta testing, a 20 CPS speed increase was noted using TURBOCTS.
I would like to thank Don P (Seattle) and Mark A for the support,
suggestions, and information. I also appologize for distributing the
real lousy version of CTSFX10x which worked for some and caused
headaches for others. If you have a copy of CTSFX10x please do
everyone a favor and erase it (besides, TURBOCTS works better and
faster!).
If you have any problems with the program, please send me a
message on GEnie (BPENNER) or by mail at: Bill Penner, 3235 Wright
Avenue, Bremerton, WA 98310.
---~~END~~---